package com.asura.ops.sync.client.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 商品表
 * </p>
 *
 * @author <a href="https://fengwenyi.com?fs=mpcg">Erwin Feng</a>
 * @since 2022-09-22
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("mdm_sku")
public class MdmSkuEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 商品编码
     */
    @TableField("sku_code")
    private String skuCode;

    /**
     * 商品名称
     */
    @TableField("sku_name")
    private String skuName;

    /**
     * （同步字段）商品简称
     */
    @TableField("short_name")
    private String shortName;

    /**
     * 型号
     */
    @TableField("sku_model")
    private String skuModel;

    /**
     * 规格
     */
    @TableField("sku_specs")
    private String skuSpecs;

    /**
     * 供应商编码
     */
    @TableField("supplier_code")
    private String supplierCode;

    /**
     * 分拣属性 1-普通商品，2-整箱商品，3-原箱商品，4-异型商品
     */
    @TableField("sorting_property")
    private Integer sortingProperty;

    /**
     * 配件类型 空值默认：【商品】
     */
    @TableField("fitting_type")
    private Integer fittingType;

    /**
     * 货号
     */
    @TableField("goods_no")
    private String goodsNo;

    /**
     * 商品单位
     */
    @TableField("unit")
    private String unit;

    /**
     * 码板标准
     */
    @TableField("tray_standard")
    private Integer trayStandard;

    /**
     * 批次类型 空值默认：【批次】
     */
    @TableField("lot_type")
    private Integer lotType;

    /**
     * 商品品牌，品牌代码不为空的情况下, 品牌名称不能为空
     */
    @TableField("brand")
    private String brand;

    /**
     * （同步字段）商品品牌Code，
     */
    @TableField("brand_code")
    private String brandCode;

    /**
     * 商品类别名称
     */
    @TableField("sku_category")
    private String skuCategory;

    /**
     * （同步字段）类别代码
     */
    @TableField("sku_category_code")
    private String skuCategoryCode;

    /**
     * 一级品类
     */
    @TableField("first_class")
    private String firstClass;

    /**
     * 二级品类
     */
    @TableField("second_class")
    private String secondClass;

    /**
     * 三级品类
     */
    @TableField("third_class")
    private String thirdClass;

    /**
     * ABCD分类 0-无���1-A类，2-B类，3-C类，4-D类
     */
    @TableField("abc_class")
    private Integer abcClass;

    /**
     * 状态 0-草稿，1-启用，2-停用
     */
    @TableField("sku_status")
    private Integer skuStatus;

    /**
     * 是否新品
     */
    @TableField("is_new")
    private Integer isNew;

    /**
     * 批次管理方式
     */
    @TableField("lot_manage_type")
    private Integer lotManageType;

    /**
     * 质保期(按天)
     */
    @TableField("shelf_life")
    private Integer shelfLife;

    /**
     * 有效期(按天)
     */
    @TableField("validity_life")
    private Integer validityLife;

    /**
     * 临期方式 0-阈值 1-比例
     */
    @TableField("expire_type")
    private Integer expireType;

    /**
     * 临期阈值(按天)
     */
    @TableField("expire_threshold")
    private Integer expireThreshold;

    /**
     * 临期比例(临近期限/有效期)
     */
    @TableField("expire_ratio")
    private Integer expireRatio;

    /**
     * 禁收时限
     */
    @TableField("forbid_receive_limit")
    private Integer forbidReceiveLimit;

    /**
     * 禁售时限
     */
    @TableField("forbid_sale_limit")
    private Integer forbidSaleLimit;

    /**
     * BOM类型
     */
    @TableField("bom_type")
    private Integer bomType;

    /**
     * 原箱标识
     */
    @TableField("is_original_box")
    private Integer isOriginalBox;

    /**
     * 箱规入数（整箱包装数）
     */
    @TableField("box_size")
    private Integer boxSize;

    /**
     * 商品URL
     */
    @TableField("img_url")
    private String imgUrl;

    /**
     * 注释
     */
    @TableField("remark")
    private String remark;

    /**
     * 数据来源平台，默认值1：标识MDM系统录入，对应枚举：SourcePlatformEnum
     */
    @TableField("source_platform")
    private Integer sourcePlatform;

    /**
     * 创建人ID
     */
    @TableField("created_by")
    private Long createdBy;

    /**
     * 创建人
     */
    @TableField("created_name")
    private String createdName;

    /**
     * 创建时间，默认为当前时间
     */
    @TableField("created_at")
    private LocalDateTime createdAt;

    /**
     * 更新人ID
     */
    @TableField("updated_by")
    private Long updatedBy;

    /**
     * 创建人
     */
    @TableField("updated_name")
    private String updatedName;

    /**
     * 更新时间
     */
    @TableField("updated_at")
    private LocalDateTime updatedAt;

    /**
     * 最小单位 体积 立方m
     */
    @TableField("volume")
    private BigDecimal volume;

    /**
     * 最小单位 重量 kg
     */
    @TableField("weight")
    private BigDecimal weight;

    /**
     * 商品ID
     */
    @TableField("goods_code")
    private Long goodsCode;

    /**
     * 供应商名称
     */
    @TableField("supplier_name")
    private String supplierName;

    /**
     * 父商品编码，非空表示属于一品多供的子商品的父商品编码
     */
    @TableField("parent_code")
    private String parentCode;

    /**
     * 是否为子商品：0-父商品或普通商品，1-子商品
     */
    @TableField("hierarchy")
    private Integer hierarchy;

    /**
     * 商品标记：二进制右起依次为新品、居间、秒杀、促销
     */
    @TableField("i_flag")
    private Integer iFlag;

    /**
     * 描述
     */
    @TableField("i_des")
    private String iDes;

    /**
     * 原价
     */
    @TableField("oldmoney")
    private BigDecimal oldmoney;

    /**
     * 代理价
     */
    @TableField("dlmoney")
    private BigDecimal dlmoney;

    /**
     * 市场价
     */
    @TableField("marketmoney")
    private BigDecimal marketmoney;

    /**
     * 商品收货日期采集标记    1=收���收货日期；0=不收集收货日期；【默认为0】
     */
    @TableField("has_delivery_date")
    private Boolean hasDeliveryDate;

    /**
     * 商品条码
     */
    @TableField("barcode")
    private String barcode;

    /**
     * 商品:长（厘米）
     */
    @TableField("length")
    private BigDecimal length;

    /**
     * 商品:宽（厘米）
     */
    @TableField("width")
    private BigDecimal width;

    /**
     * 商品:高（厘米）
     */
    @TableField("height")
    private BigDecimal height;

    /**
     * 标记结果（位运算结果int）
     */
    @TableField("marking_result")
    private Long markingResult;

    /**
     * 销量
     */
    @TableField("xiaoliang")
    private Integer xiaoliang;

    /**
     * 产品供应商型号
     */
    @TableField("productModel")
    private String productModel;

    /**
     * 商城内部型号
     */
    @TableField("internalModel")
    private String internalModel;

    /**
     * 最小计价单位的计量单位
     */
    @TableField("minUnitName")
    private String minUnitName;

    /**
     * 组件个数
     */
    @TableField("partsincluded")
    private Integer partsincluded;

    /**
     * 产���状态：-1废弃产品，0待审核,1已审核
     */
    @TableField("mp_status")
    private Integer mpStatus;

    /**
     * 最小单位采购价
     */
    @TableField("purchasingPrice")
    private BigDecimal purchasingPrice;

    /**
     * 创建者-框架生成
     */
    @TableField("mpCreatedBy")
    private String mpCreatedBy;

    /**
     * 最后修改者-框架生成
     */
    @TableField("mpModifiedBy")
    private String mpModifiedBy;

    /**
     * 向供应商采购时的最小起订量
     */
    @TableField("min_order_quantity")
    private Integer minOrderQuantity;

    /**
     * 草稿状态:0,审核通过:100
     */
    @TableField("draft_status")
    private Integer draftStatus;

    /**
     * 提交申请审批状态:0,待审批.1,审批通过,2未通过
     */
    @TableField("check_status")
    private Integer checkStatus;

    /**
     * 属主ID（例如仓ID和店铺ID，默认1，表示锐锢,2:崔国荣）
     */
    @TableField("owner_id")
    private Integer ownerId;

    /**
     * 售后类型:1无售后，2无退货，3无换货
     */
    @TableField("after_sale_state")
    private Integer afterSaleState;

    /**
     * 首次上线时间
     */
    @TableField("first_online")
    private LocalDateTime firstOnline;

    /**
     * 最后一次下线���间
     */
    @TableField("last_offline")
    private LocalDateTime lastOffline;

    /**
     * 仓库是否更新体积重量
     */
    @TableField("warehouse_updated")
    private Boolean warehouseUpdated;

    /**
     * 仓库校准时间
     */
    @TableField("w_update_time")
    private LocalDateTime wUpdateTime;

    /**
     * 是否可预售
     */
    @TableField("can_presell")
    private Integer canPresell;

    /**
     * 来源，a=锐锢自营 b=工厂直营 c=品牌商品
     */
    @TableField("source")
    private String source;

    /**
     * 商品等级
     */
    @TableField("product_level")
    private String productLevel;

    /**
     * 是否为平台商品
     */
    @TableField("is_platform")
    private Boolean isPlatform;

    /**
     * 是否寄售（非启用入驻宝标记）
     */
    @TableField("is_consignment")
    private Boolean isConsignment;

    /**
     * 采购标准价
     */
    @TableField("purchasing_standard_price")
    private BigDecimal purchasingStandardPrice;

    /**
     * 1三方独有商品
     */
    @TableField("is_tripartite")
    private Boolean isTripartite;

    /**
     * 1是大同
     */
    @TableField("is_common")
    private Boolean isCommon;

    /**
     * 1 允许7天内退货
     */
    @TableField("is_allowed_return")
    private Boolean isAllowedReturn;

    /**
     * 销售模式：1-自营 2-工厂直发 3-大菠萝 4-沈阳 5-工厂通
     */
    @TableField("sales_mode")
    private Integer salesMode;

    /**
     * 履约方式1-锐锢自营,0-默认值
     */
    @TableField("performance_ways")
    private Integer performanceWays;

    /**
     * 配送方式对应ruigu_product_delivery.delivery_type
     */
    @TableField("delivery_type")
    private String deliveryType;

    /**
     * 产地
     */
    @TableField("place")
    private String place;

    /**
     * 交易类型:1贸易2平台
     */
    @TableField("trade_type")
    private Boolean tradeType;

    /**
     * 交易渠道
     */
    @TableField("trade_channel")
    private String tradeChannel;

    /**
     * CPU编码
     */
    @TableField("cpu_code")
    private String cpuCode;

    /**
     * 商品类型:1正常sku 2cpu 3cpu子集4紧固件
     */
    @TableField("goods_type")
    private Boolean goodsType;

    /**
     * cpu或cpu下元素是否启用
     */
    @TableField("cpu_enable")
    private Boolean cpuEnable;

    /**
     * 拆单标记 0-未指定，1-需要拆单，2-无需拆单
     */
    @TableField("need_split")
    private Boolean needSplit;

    /**
     * 有效期:天,0代表不设置
     */
    @TableField("validity")
    private Integer validity;

    /**
     * 商品打标：以二进制右起计算,&1=1为优选
     */
    @TableField("goods_flag")
    private Integer goodsFlag;

    /**
     * 商品创建时间
     */
    @TableField("mp_created_at")
    private LocalDateTime mpCreatedAt;

    /**
     * 商品更新时间
     */
    @TableField("mp_updated_at")
    private LocalDateTime mpUpdatedAt;

    /**
     * 一品多供编码
     */
    @TableField("smp_code")
    private String smpCode;

    /**
     * 一品多供名称
     */
    @TableField("smp_name")
    private String smpName;

    /**
     * 批次管控
     */
    @TableField("is_batch_control")
    private Integer isBatchControl;

    /**
     * 管控类型
     */
    @TableField("control_type")
    private String controlType;

    /**
     * 分类名称
     */
    @TableField("category_name")
    private String categoryName;


}
